import os
import math

# 输入和输出文件目录
input_dir = r'C:\Users\ASUS\Desktop\2024年新生赛出题\2024年新生赛出题(非大一组)\E题\E题_input'
output_dir = r'C:\Users\ASUS\Desktop\2024年新生赛出题\2024年新生赛出题(非大一组)\E题\E题_output'
os.makedirs(output_dir, exist_ok=True)

# 判断是否是质数
def is_prime(n):
    if n <= 1:
        return False
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False
    return True

# 查找对角线上的最大质数
def diagonal_prime(nums):
    if not nums or not nums[0]:
        return 0

    max_prime = 0
    N = len(nums)
    for i in range(N):
        if is_prime(nums[i][i]):
            max_prime = max(max_prime, nums[i][i])
        if is_prime(nums[N - 1 - i][i]):
            max_prime = max(max_prime, nums[N - 1 - i][i])

    return max_prime

# 处理每个输入文件并生成对应的输出文件
for filename in os.listdir(input_dir):
    if filename.endswith('.in'):
        input_path = os.path.join(input_dir, filename)
        output_path = os.path.join(output_dir, filename.replace('.in', '.out'))

        # 读取输入文件
        with open(input_path, 'r') as f:
            len_matrix = int(f.readline().strip())
            nums = [list(map(int, f.readline().strip().split())) for _ in range(len_matrix)]

        # 计算结果
        result = diagonal_prime(nums)

        # 写入输出文件
        with open(output_path, 'w') as f:
            f.write(f"{result}\n")

print("所有 .out 文件已生成并保存在指定目录中。")
